Digital media editing

ABSTRACT

Implementations are directed to providing a digital media editing environment for editing at least a portion of a digital video using a mobile device, establishing communication between the mobile device and a data source, receiving, from the data source, a first portion of the digital video, the first portion including a first set of frames including less than all frames of the digital video, applying an edit to the first portion of the digital video, while less than all frames of the first digital video are stored on the mobile device, subsequent to applying the at least one edit, receiving, from the data source, a second portion of the digital video, the second portion including a second set of frames, and storing an edited digital video including at least one frame of the first set of frames, at least one frame of the second set of frames, and the edit.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. 62/276,627, filed Jan. 8,2016, and U.S. 62/291,336, filed Feb. 4, 2016, the disclosures of whichare incorporated herein by reference in their entireties.

SUMMARY

This specification generally relates to digital media editingparticularly for mobile processing devices.

In some implementations, actions include providing a digital mediaediting environment for editing at least a portion of a first digitalvideo using a mobile device, establishing communication between themobile device and a data source, receiving, from the data source, afirst portion of the first digital video, the first portion including afirst set of frames including less than all frames of the first digitalvideo, applying at least one edit to the first portion of the firstdigital video, while less than all frames of the first digital video arestored on the mobile device, subsequent to applying the at least oneedit, receiving, from the data source, a second portion of the firstdigital video, the second portion including a second set of frames ofthe first digital video, and storing an edited digital video on themobile device, the edited digital video including at least one frame ofthe first set of frames, at least one frame of the second set of frames,and the at least one edit. Other embodiments of these aspects includecorresponding systems, apparatus, and computer programs, configured toperform the actions of the methods, encoded on computer storage devices.

These and other embodiments may each optionally include one or more ofthe following features: the first portion of the digital video includesa low-resolution version of the digital video; the set of framesincludes every z^(th) frame of the digital video, where z is an integerthat is greater than or equal to 2; the edited digital video includesless than all frames of the first digital video; less than all frames ofthe first digital video are received by the mobile device; the secondset of frames includes frames of the first digital video that are absentfrom the first set of frames; the edited digital video includes at leasta portion of a second digital video that is received by the mobiledevice; the data source comprises a media device; the data sourcecomprises a server system that stores digital content; and the mobiledevice includes one of a tablet computing device, a smartphone, and amedia device.

The details of one or more implementations of the subject matterdescribed in this specification are set forth in the accompanyingdrawings and the description below. Other potential features, aspects,and advantages of the subject matter will become apparent from thedescription, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B illustrate an example mobile processing device.

FIG. 2 depicts an example process for editing digital media that can beperformed by a mobile device application running on the mobileprocessing device of FIGS. 1A and 1B.

FIGS. 3A-3F depict the mobile processing device of FIGS. 1A and 1Brunning an example mobile device application.

FIG. 4 depicts an example architecture in accordance withimplementations of the present disclosure.

FIGS. 5A-5L depict example screenshots of a digital media editingapplication for mobile devices in accordance with implementations of thepresent disclosure.

FIGS. 6A-6F depict example screenshots of a digital media editingapplication for mobile devices in accordance with implementations of thepresent disclosure.

FIGS. 7A-7L depict example screenshots of a digital media editingapplication for mobile devices in accordance with implementations of thepresent disclosure.

FIGS. 8A-8F depict example screenshots of a digital media editingapplication for mobile devices in accordance with implementations of thepresent disclosure.

FIG. 9 depicts an example process that can be executed in accordancewith implementations of the present disclosure.

Like reference numbers represent corresponding parts throughout.

DETAILED DESCRIPTION

Implementations of the present disclosure are generally directed tomobile device applications for enabling video editing to be performed onsuitable mobile processing devices.

Such mobile device applications can provide an object-based environment,in which distinct digital media units (e.g., still images, video clips,audio clips, etc.) can be imported and edited. These mobile deviceapplications can also be operable to merge the imported digital mediaunits into a unitary project based on modifications achieved in theediting environment.

FIGS. 1A and 1B illustrate an example mobile processing device 100. Inthe depicted example, the mobile processing device 100 is provided as asmartphone. It is contemplated, however, implementations of the presentdisclosure can be realized using tablet computing devices, laptopcomputers, personal digital assistants (PDAs), mobile phones, or any oneof many other known types of suitable mobile processing devices. In thedepicted example, the mobile processing device 100 includes one or moreprocessors 102, memory 104 (e.g., computer-readable media, read-onlymemory (ROM), random access memory (RAM), flash memory, a removablememory card (e.g., SD card), a hard disk, or any combination thereof), atransmitter 106, a receiver 108, a keypad 110 (e.g., a soft key), adisplay 112, a user-interface (UI) module 114 (e.g., a graphical userinterface module for touchscreen devices), speakers 116, a microphone118, sensors 120, and a battery 122. In some examples, the processor 102can control each component of the mobile processing device 100 and canaccess memory 104 to run applications 124, and/or retrieve user data126, which can be stored in the memory. The transmitter 106 and thereceiver 108 transmit and receive signals (e.g., via one or moreantennas) to other communication devices, base stations, computers,satellites (e.g., GPS satellites), and/or wireless access points. Thekeypad 110, the display 112, the speaker 116, and the microphone 118 areinput/output devices for communicating with a user. The battery 120provides power to appropriate components of the mobile processingdevice.

In some examples, the processor 102 can include a display manager 128and an input manager 130. The display manager 128 can be operable tomanage displayed on the display 112. In some implementations, anoperating system running on the mobile device 102 can use the displaymanager 128 to arbitrate access to the display 112 for a number ofapplications 124 running on the mobile processing device 100. In someexamples, a number of applications 124 can run concurrently on themobile processing device 100, with each application displayed to theuser in respective windows on the display 112. In such examples, thedisplay manager 128 can control which portions of each application 124are displayed on the display 112. In some implementations, the displaymanager 128 can control the orientation (e.g., portrait orientation,landscape orientation) of the display 112. In some examples, the inputmanager 130 can be operable control the handling of data received from auser via one or more input devices of the mobile processing device 100.For example, the input manager 130 can determine which application 124should be invoked as a result of user received input. In someimplementations, the UI module 114 can coordinate with the input devicesto a interpret user input. The interpreted input can be evaluated by theinput manager 130 to determine which application 124 should be invoked.

FIG. 2 depicts an example process 200 for editing digital media that canbe performed by one or more mobile device applications executed on themobile processing device 100. As shown, the process 200 includesobtaining a plurality of digital media units (202). Digital media unitscan be obtained by any one of several suitable procedures. In someexamples, a digital media unit can include a digital video file, adigital image file and/or a digital audio file. In some implementations,digital media units can be obtained by accessing the user data 126stored in memory 104. That is, digital video files, digital image filesand/or a digital audio files can be stored in memory 104. In someexamples, the mobile device application can enable a user to utilize theinput components to select one or more digital media units stored inmemory 104. In some examples, the mobile device application can copy theselected digital media units and store them in a suitable directory, orsimply reference their location in memory 104. In some implementations,and as described in further detail herein, digital media units can alsobe obtained through a communications link (e.g., a wired or wirelesscommunications link). For example, the mobile device application canenable a user to utilize the input components of mobile processingdevice 100 to select specific media units for downloading from a remoteserver or a computing system (e.g., a personal computer communicativelycoupled to mobile processing device 100). The downloaded digital mediaunits can be stored in memory 104. In some examples, digital media unitscan be created using and stored to the mobile processing device 100. Forexample, a digital camera can be used to capture digital images and/ordigital video and store them as digital files on the mobile processingdevice 100. As another example, a microphone of the mobile processingdevice 100 can capture audio and store it in a digital audio file.

The process 200 also includes providing an editing environment (204). Insome examples, the editing environment is an object-based editingenvironment. In such examples, obtained digital media units can berepresented as discrete objects arranged in the editing environment. Insome implementations, a number of the discrete objects are arrangedlinearly by the mobile device application in a prescribed or randomorder. In some implementations, the mobile device application can enableusers to rearrange the objects within the editing environment byutilizing the input components of the mobile processing device 100. Insome examples, the digital media units can be arranged linearly,end-to-end, or in an overlapping manner by users. The mobile deviceapplication can also enable users to introduce additional objects to theediting environment. For example, objects representing additionaldigital media units can be introduced. In some implementations, objectsin the editing environment can represent elements other than digitalmedia units. For example, objects can represent effects or actions (suchas transitions) to be implemented. Such objects can be imported manuallyby users, or automatically by the mobile device application.

As shown, the process 200 further includes merging the obtainedplurality of digital media units to form a substantially continuousdigital media unit (206). For example individual video clips, audioclips, and/or or still images can be merged (merged still images may beprovided in the form of a slide show where each image is displayed for apredetermined duration). In some implementations, the plurality ofdigital media units are stitched together piece-by-piece according tothe arranged configuration of representative objects in the editingenvironment. Further, in some examples, where an object in the editingenvironment represents a transition effect, the resulting “merge” of thepre-input media and the post-input media for that transition can becreated based on the type of transition selected. The amount of overlapcan be defined by the duration property for that transition object.

FIGS. 3A-3F depict the mobile processing device 100 running an examplemobile device application (e.g., an application 124 stored in memory104). As shown (for example in FIGS. 3A-3C), the mobile deviceapplication presents an editing environment 302 to users via the display112 of the mobile processing device 100. A number of discrete virtualobjects 304 (e.g., 304 a and 304 b) are disposed in a linearconfiguration within the editing environment 302. In this example, theobjects 304 represent distinct digital media units available from memory104 of the mobile processing device 100. In some implementations, theobjects 304 are movable within editing environment 302. Therefore, asdescribed above, the objects 304 can be rearranged in any prescribedorder by a user. For example, a “drag-and-drop” technique can beexecuted by a user to rearrange the objects 304.

As shown, the mobile device application can provide a menu bar 306including a number of selectable menu items. For example, selecting menuitem 308 (“Projects”) enables a user to access previously saved projects(i.e., instances of editing environment 302), or to create new projects.Various projects can include representations of the same, or different,digital media units. Selecting menu item 310 enables the user to adjustany one of several default settings for the project (e.g., screenorientation, video or sound quality, etc.). Selecting menu item 312enables the user to view a help file. The help file can include variousresources such as troubleshooting techniques, software patch or versionnotes, etc. Selecting menu item 314 (“Preview”) enables the user toobserve a preliminary version, or preview of a merged digital media unit(as described in greater detail below). In this example, the menu bar306 also includes selectable toggle items 316 a (“Video”) and 316 b(“Audio”) for defining the type of digital media units that aredisplayed for editing.

In some implementations, the mobile device application can also providean overview bar 318. As shown, the overview bar 318 includes a number ofrespective selectable tiles 320 corresponding to each object 304 in theediting environment 302. In some examples, selecting any one of tiles320 simultaneously selects the corresponding object 304 for detaileddisplay in the editing environment 302.

In some examples, users can add representations of additional digitalmedia units (or other content) to the editing environment 302. Users canalso modify digital media units that are already represented in theediting environment 302. For example, and with reference to FIG. 3B,when an existing object (e.g., object 304 a) is selected and displayed,various selectable editing icons are displayed within the editingenvironment 302. In the depicted embodiment, the editing icons includean insert icon 322 a, an insert icon 322 b and an editing icon 324.Selecting either of insertion icons 322 a, 322 b enables the user toinsert a digital media unit into editing environment 302 before or afterthe displayed object, respectively. In some examples, a menu isdisplayed in response to user selection of an insertion icon 322 a, 322b, which menu includes object, transition and title options. The usercan select object from the menu to insert select a digital media objectfor insertion. The user can select transition from the menu to select atransition for insertion. The user can select title from the menu toinput a title for insertion.

Selecting editing item 324 enables the user to modify the digital mediaunit represented by the selected object. In some implementations,selecting editing item 324 allows the user to access one or morecontextual editing options. For example, when a selected object isrepresentative of a video clip, the mobile device application enablesusers to: add and/or remove frames, adjust a default playback speed, panand/or zoom (e.g., via the Ken Burns effect or traditional cropping),etc. Similarly, when the selected object is representative of a stillimage, the mobile device application enables the user to: pan and/orzoom (e.g., via the Ken Burns effect or traditional cropping), addfilters, etc.

FIG. 3C shows a place holder for an additional object 326 to be importedinto editing environment 302 and inserted between objects 304 a and 304b. For example, the depiction of FIG. 3C is provided in response to userselection of the insert icon 322 b of FIG. 3B, and making a selectionfrom the displayed menu. In the depicted example, the object 326 can berepresentative of a transition effect to be inserted between the digitalmedia units represented by the objects 304 a and 304 b. As noted above,the object 326 can be inserted manually by a user utilizing editingitems 322 a, 322 b. In some examples, insertion of an object can beachieved automatically by the mobile device application. As shown, whenthe object 326 is selected, various selectable editing icons 322 a, 322b, 324 are displayed within editing environment 302. Selecting either ofediting items 322 a, 322 b enables the user to import additional content(e.g., additional representative objects) into editing environment 302.

Selecting editing icon 324 enables the user to modify a defaulttransition effect represented by object 326. FIG. 3D shows a menu ofselectable items 332 for indicating a desired type of transition effect(e.g., “Default”, “Crossfade”, “Slide Left”, “Fall”, “Grow”, “Shrink”,etc.). The transition effect provides a visual transition betweenobjects when the video is played. In some implementations, thetransitions represented by selectable items 332 are organized in alibrary stored in memory 104 of mobile processing device 100. In someexamples, additional transitions can be added to the library (forexample, additional transitions can be downloaded from a remote serveror a computing system) and represented in the menu by additionalselectable items.

As described above, selectable toggle items 316 a (“Video”) and 316 b(“Audio”) can define the type of digital media units that are displayedfor editing. FIG. 3E shows editing environment 302 when item 316 b isselected. In the depicted example, audio slots 328 a, 328 b are providedand recording slot 330 is provided. The audio slots 328 a, 328 b caneach be populated with an audio object. In the depicted example, theaudio slots 328 a, 328 b are populated by audio objects represented byaudio representations 338 a, 338 b, respectively, and the recording slot330 is empty. In this example, audio representations 338 a, 338 b areprovided in the form of linear segments aligned with a video timeline340 (e.g., a frame-by-frame timeline). In some implementations, however,audio representations can be provided in the form of discrete objectsthat are movable within editing environment 302. In some example, whenan audio slot is empty, an insert icon is displayed. In response to userselection of the insert icon, an audio object selection menu can bedisplayed, which the user can navigate to select an audio object forpopulating the audio slot.

Audio editing icons 334 a, 334 b, 336 are displayed. The audio editingicons 334 a, 334 b, 336 and audio representations 338 a, 338 b overlayframes of the objects that make up the video. Selecting either ofediting icons 334 a, 334 b enables the user to edit an audio trackrepresented by the audio representation 338 a, 338 b, respectively. Insome examples, audio editing options include accelerating ordecelerating the audio playback speed and/or setting start and end timepoints for the respective audio object relative to a timeline of theunderlying video. Selecting icon 336 enables the user to record an audiofile and import a representation of the recorded file into editingenvironment 302.

As described above, selecting the appropriate menu item enables the userto observe a preliminary version of the merged digital media unit. Themerged digital media unit can include a combination of the digital mediaunits and effects embodied by the representations imported into editingenvironment 302. In some implantations, a number of the digital mediaunits and effects are combined in a chronological order prescribed bythe arrangement of discrete objects in editing environment 302. FIG. 3Fshows a preview screen presented to users via display 112 of mobileprocessing device 100. As shown, the preview screen includes aselectable media item 342. Selecting the media item can allow users toobserve the merged digital media unit. Additionally, in this example,menu bar 306 includes selectable menu item 344 (“Export”), in additionto the various other menu items described above. Selecting menu item 344can allow users to export the merged digital media unit to a specifiedlocation in memory 104 of mobile processing device 100.

FIG. 4 depicts an example architecture 400 in accordance withimplementations of the present disclosure. In the depicted example, thearchitecture 400 includes a mobile processing device 100 (e.g., asmartphone, a tablet computing device), a network 402, a media device404, and a server system 406.

In some examples, the media device 404 includes any appropriate devicefor generating and storing, among other functionality, digital mediaobjects. An example media device can include a digital camera that canbe used to capture digital images, video, and/or audio (as digital mediaobjects). Example media devices include the GoPro Hero® series ofdigital video cameras provided by GoPro, Inc. In some examples, themedia device 404 stores digital media objects in computer-readablememory. Example computer-readable memory can include removable memory,such as a non-volatile memory card (e.g., a secure digital (SD) storagecare developed by the SD Card Association (SDA) for use in portabledevices). In some examples, the server systems 406 includes one or morecomputing devices, and computer-readable memory, and can representvarious forms of server systems including, but not limited to a webserver, an application server, a proxy server, a network server, or aserver farm.

In some examples, the media device 404 and/or the server system 406store one or more digital media units (also referred to herein asdigital media objects, or objects) (e.g., a digital video file, adigital image file, a digital audio file). For example, the serversystem 406 can host one or more computer-implemented services, which canbe used (e.g., by a user of the mobile processing device 100) to, forexample, store, share, and/or edit digital media objects. Examplecomputer-implemented services can include a computer-implemented socialnetworking service, a computer-implemented micro-blogging service, and acomputer-implemented content-sharing service. An example socialnetworking service can include Facebook® provided by Facebook, Inc. Anexample micro-blogging service can include Twitter® provided by TwitterInc. Example content-sharing services include image-sharing servicesand/or video-sharing services. An example content-sharing serviceincludes Instagram® provided by Facebook, Inc. It is contemplated,however, that implementations of the present disclosure can be realizedin any appropriate computer-implemented services (e.g., multiple socialnetworking services, multiple micro-blogging services, multiplecontent-sharing services, and/or any other appropriatecomputer-implemented service).

In some examples, the mobile processing device 100 communicates with themedia device 404, and/or the server system 406 over the network 402 toaccess objects stored thereby. In some examples, the network 402 can bea public communication network (e.g., the Internet, cellular datanetwork, dialup modems over a telephone network), a wide area network(WAN), a local area network (LAN), a private communications network(e.g., private LAN, leased lines), a wireless network, a wirelessconnection between devices, or any appropriate combination thereof. Inone example, the mobile processing device 100 can communicate with themedia device 404 over the network 402 (e.g., as a wireless connection(WiFi, Bluetooth)) to access objects stored by the media device 404. Inanother example, the mobile processing device 100 can communicate withthe server system 406 over the network 402 (e.g., the Internet) toaccess objects stored by the server system 406.

In some implementations, the mobile processing device 100 and/or themedia device 404 can execute a digital media editing application toenable a user to create, edit, and store a digital media project (e.g.,a digital video). In accordance with implementations of the presentdisclosure, the digital media project can include objects and/orportions of objects stored on the mobile processing device 100, on themedia device 404, and/or the server system 406. As described in furtherdetail herein, implementations of the present disclosure enable anobject provided on the media device 404, and/or the server system 406 tobe edited using the digital media editing application of the mobileprocessing device 100, before the object (or a portion of the object) isdownloaded from the media device 404, and/or the server system 406 tothe mobile processing device 100. In some implementations, an objectprovided on the mobile processing device 100, and/or the server system406 can be edited using a digital media editing application executed onthe media device 404, before the object (or a portion of the object) isdownloaded from the mobile processing device 100, and/or the serversystem 406 to the media device. Although implementations of the presentdisclosure include editing digital media on either the mobile processingdevice 100, and/or the media device 404, implementations will bedescribed in further detail herein with reference to editing digitalmedia on the mobile processing device 100.

In accordance with implementations of the present disclosure,downloading of objects from the media device 404, and/or the serversystem 406 to the mobile processing device 100 need not be performedbefore editing the objects using the digital media editing application.This enables resources (e.g., processors, memory, communicationbandwidth) to be conserved. For example, an object stored on the mediadevice 404, and/or the server system 406 can be relatively large (e.g.,10 MB, 100 MB, 1 GB). The mobile processing device 100 can communicatewith the media device 404, and/or the server system 406 to edit anobject and create a sub-object from the object using the digital mediaediting application. In some examples, the sub-object is smaller thanthe object, from which the sub-object was created. After the sub-objecthas been created, the sub-object (as opposed to the object) can bedownloaded to the mobile processing device 100 for inclusion in adigital media project. Because the sub-object is smaller than theobject, resources used to download and store the sub-object areconserved (e.g., less communication bandwidth is required to downloadthe sub-object than the object; less memory is required of the mobileprocessing device 100 to store the sub-object than the object).

Implementations of the present disclosure also provide low-resolutionediting of an object (or sub-object) before a high-resolution object (orsub-object) is downloaded to the mobile processing device 100. In someexamples, an object (or sub-object) can be selected for editing. Forexample, the user can use the digital media editing applicationexecuting on the mobile processing device 100 to select an object (orsub-object) that is stored on the media device 404. In another example,the user can use the digital media editing application executing on themobile processing device 100 to select an object (or sub-object) that isstored on the server system 406.

In some implementations, in response to user selection of the object, alow-resolution version of the object is downloaded to the mobileprocessing device 100. In some examples, the low-resolution object has alower fidelity than the high-resolution object. For example, thehigh-resolution object can include a digital video that includes Xframes (e.g., 5400 frames for a 3-minute digital video recorded at 30frames-per-second (FPS)). In some examples, the low-resolution objectcan include the digital video with Y frames, where Y is less than X(e.g., 900 frames of the original 5400 frames). In some examples, thelow-resolution object includes the same number of frames as thehigh-resolution object, but one or more frames of the low-resolutionobject is of a lower resolution than the respective one or more framesof the high-resolution object. For example, a frame of thehigh-resolution object can be provided at a first pixel count, and arespective frame of the low-resolution object can be provided at asecond pixel count that is lower than the first pixel count. In someexamples, the low-resolution object is provided from the high-resolutionobject. For example, the low-resolution object can be provided byfiltering the high-resolution object to select every z^(th) frame, wherez is an integer that is ≧2 (e.g., every 6^(th) frame). In some examples,every z^(th) frame is removed, or is converted to a lower resolution(e.g., from the first pixel count to the second pixel count).

In some implementations, the low-resolution object is automaticallyprovided upon creation of the high-resolution object. For example, inresponse to creation of the high-resolution object (e.g., completedrecording of a digital video), the low-resolution object is created(e.g., by the media device 404, or the server system 406). In someimplementations, the low-resolution object is provided in response touser selection of the high-resolution object for editing. For example,in response to user selection of the high-resolution object, thelow-resolution object is created (e.g., by the media device 404, or theserver system 406).

In some implementations, the low-resolution object is downloaded to themobile processing device 100, and a graphical representation of thelow-resolution object is displayed in the digital media editingapplication. In some examples, the user can edit the low-resolutionobject, as described herein. For example, the user can use the digitalmedia editing application to apply one or more edits (e.g., clip, slowmotion, fast forward, zoom, etc.) to the low-resolution object. In someexamples, an edit is associated with two or more frames of thelow-resolution object. In some examples, a beginning of the edit isassociated with a first frame, and an end of the edit is associated witha second frame (e.g., the duration of the edit is from the first frameto the second frame). In some examples, an edit is associated with asingle frame. In some implementations, a set of edits for thelow-resolution object is provided and includes one or more edits, eachedit being associated with at least one frame (e.g., each edit beingkeyed to at least one frame based on unique identifiers of the frames,described in further detail herein).

In some implementations, the set of edits is applied to thehigh-resolution object. In some examples, the set of edits is applied tothe high-resolution object (or portion thereof) downloaded to the mobileprocessing device 100. In some examples, the set of edits is uploaded tothe location where the high-resolution object is stored (e.g., the mediadevice 404, or the server system 406), and the set of edits is appliedto the high-resolution object (or a copy of the high-resolution object)at the location (e.g., the set of edits is applied to thehigh-resolution object by the media device 404, or the server system406). In this manner, an edited high-resolution object can be provided.The edited high-resolution object can be subsequently uploaded to, forexample, one or more computer-implemented services (e.g., socialnetworking service, micro-blogging service, content-sharing service),and/or downloaded to the mobile processing device 100.

In some implementations, download of the high-resolution object canoccur during editing of the low-resolution object. For example, thelow-resolution object can be downloaded to the mobile processing device100, and editing of the low-resolution object can be undertaken. Afterdownload of the low-resolution object, the high-resolution object (or aportion thereof) can be downloaded to the mobile processing device,regardless of whether editing of the low-resolution object is complete.In some implementations, download of the high-resolution object canoccur after editing of the low-resolution object. For example, thehigh-resolution object can be downloaded in response to completion ofediting of the low-resolution object. In this manner, all frames of thehigh-resolution object need not be downloaded (e.g., in cases whereframes were clipped out) reducing the amount of data transferred to themobile processing device 100.

In some implementations, download of the high-resolution object onlyincludes content (e.g., frames) that is absent from the low-resolutionobject (e.g., frames that were not already downloaded as thelow-resolution object). For example, and considering a digital video,the high-resolution object includes X frames, and the low-resolutionobject includes Y frames of the X frames. Because the Y frames arealready downloaded to the mobile processing device as part of thelow-resolution object, only the remaining frames of the X frames need bedownloaded to the mobile processing device 100 to recreate thehigh-resolution object at the mobile computing device (e.g., byintegrating the Y frames with the remaining frames of the X frames). Ineffect, the high-resolution object (or portion thereof) is downloaded tothe mobile processing device 100 in multiple components (e.g., a firstcomponent (the low-resolution object of Y frames), and a secondcomponent (the remaining frames (or portion) of the Z frames).

In some implementations, the high-resolution object, or portion thereof,is recreated on the mobile computing device 100 based on uniqueidentifiers associated with the frames. In some examples, each of the Xframes is assigned a respective unique identifier (e.g., by the devicethat recorded the high-resolution object). In some examples, a framesequence is provided based on the unique identifiers, and defines atemporal order of the frames. In some examples, the Y frames of thelow-resolution object, and the subsequently downloaded remaining framesof the X frames are put in the temporal order based on the uniqueidentifiers. For example, frames of the high-resolution object caninclude unique identifiers ID₁, ID_(X) (e.g., ID₁, ID₅₄₀₀) in thetemporal order 1, . . . , X (e.g., 1, . . . , 5400). In some examples,the low-resolution object includes Y frames of the X frames (e.g., everyz^(th) frame). For example, the low-resolution object includes frameswith identifiers in the set ID_(1+nZ), wherein n is an integer ≧0.Accordingly, the remaining frames of the X frames includes frames withidentifiers not included in the set ID_(1+nz). When the remaining frames(or portion thereof) are received by the mobile processing device 100,the digital media editing application can integrate the frames based onthe unique identifiers and the temporal order.

FIGS. 5A-5L depict example screenshots of a digital media editingapplication for mobile devices in accordance with implementations of thepresent disclosure.

FIG. 5A depicts an example projects screen 500. In the depicted example,the projects screen 500 provides graphical representations of digitalmedia projects 502 that are stored on the mobile processing device 100.The projects screen 500 includes a selection interface 504 for switchingbetween the projects screen 500, and a media screen (discussed belowwith reference to FIG. 5C). The projects screen 500 includes an addbutton 506, which can be selected to initiate a workflow for creating anew digital media project. The projects screen 500 also includes a mediadevice connection button 508, which can be selected to initiate aworkflow for connecting the mobile processing device 100 to a mediadevice (e.g., the media device 402 of FIG. 4). In some examples, agraphical representation of a digital media project 502 can be selectedto initiate view and/or editing of the digital media project 502.

FIG. 5B depicts a modified version of the example projects screen 500′.In the depicted example, the projects screen 500′ provides graphicalrepresentations of digital media projects 502 that are stored on themobile processing device 100. The projects screen 500′ also includes afilter interface 510 for filtering which digital media projects 502 aredisplayed on the projects screen 500′. In the depicted example, “AllProjects” is selected. In some examples, the user can interact with thefilter interface 510 to select a filter option (e.g., All Projects,Recent Projects, etc.) to change which digital media objects 500 aredisplayed. The projects screen 500′ also includes source interface 512,which includes a plurality of options for selecting a source of digitalmedia to be displayed in the projects screen 500′. Example sourcesinclude “Projects” (the digital media projects stored on the mobileprocessing device 100), “Media” (the digital media objects stored on themobile processing device 100), and “Channel” (an external digital mediasource (e.g., the media device 402, computer-implemented servicesprovided by the server system 406). The source interface 512 alsoincludes a “Settings” option, which can be selected to display asettings screen.

FIG. 5C depicts an example media screen 514. In the depicted example,the media screen 514 provides graphical representations of digital mediaobjects 516 (e.g., images, video, audio) that are stored on the mobileprocessing device 100. The media screen 514 includes the selectioninterface 504 for switching between the projects screen 500, and themedia screen 514. The media screen 514 includes the add button 506, andthe media device connection button 508. In some examples, a graphicalrepresentation of a digital media object 516 can be selected to initiateview and/or editing of the digital media object 516, and/or creation ofa digital media project based on the digital media object 516. The mediascreen 514 includes a media type selection interface 518, which includesa plurality of options for selecting a type of digital media objects tobe displayed in the media screen 514. In the depicted example, the mediatype selection interface 518 includes an “All” option, which can beselected to display graphical representations of all digital mediaobjects stored on the mobile processing device 100, a “Clips” option,which can be selected to display graphical representations ofpre-defined clips (snippets, sub-objects) stored on the mobileprocessing device 100, a “Videos” option, which can be selected todisplay graphical representations of all video objects stored on themobile processing device 100, and a “Photos” option, which can beselected to display graphical representations of all image objectsstored on the mobile processing device 100.

FIG. 5D depicts the example media screen 514 in response to selection ofthe “Clips” option from the media type selection interface 518. In thedepicted example, the media screen 514 provides graphicalrepresentations of digital media objects 517 (e.g., snippets,sub-objects) that are stored on the mobile processing device 100.

FIG. 5E depicts an example media device screen 520. In some examples,the media device screen 520 is displayed in response to establishingcommunication between the mobile processing device 100 and a mediadevice (e.g., the media device 404 of FIG. 4). For example, the user canselect the media device connection button 508 (e.g., of FIGS. 5A, 5C,5D) to initiate a workflow for connecting to a media device. In someexamples, in response to selection of the media device connection button508, a connection screen can be displayed, which provides graphicalrepresentations of one or more media devices that are connectable (e.g.,wirelessly) to the mobile processing device 100. In some examples, amedia device is connectable, if it is on (or at least active forestablishing communication), is registered with the digital mediaediting application, and/or is within range (e.g., depending on awireless communication protocol/hardware) of the mobile processingdevice 100. The user can select a media device from the connectionscreen.

In the example of FIG. 5E, the media device screen 520 providesgraphical representations of digital media objects 522 that are storedon the media device. The media device screen 520 includes a media deviceinterface 524, which indicates the particular media device that themobile computing device 100 is currently connected to. In some examples,the user can interact with the media device interface 524 to selectanother media device to connect to. The media device screen 520 includesa media type selection interface 526, which includes a plurality ofoptions for selecting a type of digital media objects to be displayed inthe media device screen 520. In the depicted example, the media typeselection interface 526 includes an “All” option, which can be selectedto display graphical representations of all digital media objects storedon the media device, a “Clips” option, which can be selected to displaygraphical representations of pre-defined clips (snippets, sub-objects)stored on the media device, a “Videos” option, which can be selected todisplay graphical representations of all video objects stored on themedia device, and a “Photos” option, which can be selected to displaygraphical representations of all image objects stored on the mediadevice. The media device screen 520 includes a selected objectsinterface 528. In some examples, the selected objects interface 528depicts graphical representations of digital media objects selected bythe user. For example, the user can select a graphical representation ofa digital media object 522 from the media device screen 520, and inresponse, the graphical representation is displayed on the selectedobjects interface. In some examples, the selected objects interface 528depicts graphical representations of digital media objects for potentialdownload from the media device to the mobile processing device 100.

FIGS. 5F-5H depict an example object editing screen 530 in accordancewith implementations of the present disclosure. In some examples, theobject editing screen 530 is displayed in response to selecting adigital media object for editing, the digital media object being storedon the currently connected media device (e.g., as indicated by mediadevice interface 524). In this manner, the digital media object isedited from the mobile processing device 100 before downloading thedigital media object, or portion thereof, to the mobile processingdevice 100 from the media device.

The object editing screen 530 includes a viewer 532 for viewing thedigital media object (e.g., play the digital media object). The objectediting screen 530 includes an editor bar 534, which displays aplurality of frames of the digital media object that is being edited. Insome examples, the editor bar 534 can be expanded (see FIG. 5H). Theeditor bar 534 includes handles 536 a, 536 b, which can be moved todefine a beginning and an ending of a sub-object (e.g., snippet) that isto be created from the digital media object. For example, the handle 536a can be moved right-left to define a beginning of the sub-object, andthe handle 536 b can be moved left-right to define an ending of thesub-object. In some examples, the editor bar 534 includes a partitioningbar 538 that can be used to partition the sub-object into a firstportion and a second portion. In some examples, if the partitioning bar538 is immediately adjacent to a handle 536 a, 536 b, the partitioningbar 538 does not effect the sub-object (does not partition thesub-object into a first portion and a second portion). In some examples,if the partitioning bar 538 is offset from the handles 536 a, 536 b, thepartitioning bar 538 partitions the sub-object into the first portionand the second portion. In some examples, the first portion runs fromthe handle 536 a to the partitioning bar 538, and the second portionruns from the partitioning bar 538 to the handle 536 b. FIG. 5F depictsan example of the editor bar 534 including respective portionshighlighted.

In some implementations, the editor bar 534 includes a marker 540, whichmarks a point within a clip that is provided within the media objectbeing edited. More particularly, and in some examples, the media deviceenables users to mark a point within a media object that a clip is to beprovided. For example, as a user uses the media device to capturedigital video (which is subsequently provided as the media object), theuser can press a button on the media device to mark the media object,while the user is capturing the video. Consequently, the subsequentlyprovided media object, stored on the media device, includes metadataindicating the point, at which, the marker is provided. In someexamples, multiple markers (and hence, multiple clips) can be providedfor the media object. In some examples, a clip of a pre-defined lengthof time (e.g., X seconds, where X is equal to an integer that is lessthan the running time of the media object) is automatically providedaround a marker. In some examples, the length of the clip is defined bythe user, or is defined by the media device (and editable by the user).In some examples, the marker indicates the beginning, middle, or end ofthe clip.

In some implementations, if the media object that is to be edited anddisplayed in the object editing screen 530 includes one or more markers(inserted by the media device), respective markers 540 are automaticallydisplayed in the editor bar 534. On the other hand, if the media objectthat is to be edited and displayed in the object editing screen 530 doesnot include one or more markers (inserted by the media device),respective markers are not automatically displayed in the editor bar534.

In some implementations, and as seen in FIG. 5H, the editor bar 534includes a highlighter 541, which indicates one or more potentiallyinteresting frames of the media object being edited. In some examples,frames of the media object can be processed using one or more imagerecognition techniques to identify a presence of one or more objectswithin the frame(s), and/or action occurring within the frame(s). Forexample, a frame (digital image) can be processed using a facialdetection engine to detect the presence of one or more faces, and, if athreshold number of faces (e.g., at least one face) are detected in theframe, the frame is highlighted as potentially interesting. As anotherexample, a frame (digital image) can be processed using an objectdetection engine to detect the presence of one or more objects, and, ifa particular type of object (e.g., a person) is detected in the frame,the frame is highlighted as potentially interesting. As another example,two or more frames (digital images) can be processed using an objectmovement detection engine to detect the presence of and movement of oneor more objects, and, if an object is detected in the frames and theobject is moving, the frames are highlighted as potentially interesting.In some examples, facial detection, and/or object detection and/ormovement detection are performed by the media device that the mediaobject is stored on. In some examples, facial detection, and/or objectdetection and/or movement detection are performed by the mobileprocessing device 100, after the frames are transmitted to the mobileprocessing device 100, as described in further detail herein.

In some implementations, metadata is associated with the media object,the metadata indicating one or more frames of the media object to behighlighted. In some implementations, if the media object that is to beedited and displayed in the object editing screen 530 includes metadataindicating that frames are to be highlighted, respective highlighters541 are automatically displayed in the editor bar 534.

In some implementations, the object editing screen 530 includes a mediaobject download button 542. In some examples, the media object downloadbutton 542 can be selected to download the media object, sub-object,and/or portions thereof to the mobile processing device 100 from themedia device. For example, the user can use the object editing screen530 to define a sub-object of a media object using the handles 536 a,536 b, the sub-object running for less time than the media object beingedited. When ready, the user can select the media object download button542 to download the sub-object to the mobile processing device 100 as amedia object that is stored on the mobile processing device. In someexamples, if the sub-object is partitioned using the partitioning bar538, the sub-object can be stored as a media object including metadataindicating the location of the partition. In some examples, if thesub-object is partitioned using the partitioning bar 538, the firstpartition and the second partition of the sub-object can each be storedas independent media objects.

In accordance with implementations of the present disclosure, the mediaobject is streamed from the media device to the mobile processing devicefor playback in the viewer 532. In this manner, the media object is notdownloaded to the mobile processing device 100 for editing. In someexamples, one or more frames of the media object are transmitted fromthe media device for temporary storage (e.g., caching) on the mobileprocessing device 100. For example, in response to user selection of amedia object that is to be edited (e.g., from the media device screen520 of FIG. 5E), a plurality of frames of the media object aredownloaded to the mobile processing device 100. In some examples, theplurality of frames includes a first set of frames (e.g., one or moreframes), and a second set of frames (e.g., one or more frames). In someexamples, the first set of frames includes consecutive frames that beginat the start of the media object. For example, caching the first fewframes of the media object at the mobile computing device. In thismanner, if the user selects to play the media object in the viewer 532,playback can proceed based on the frames in the first set of frames,while subsequent frames (subsequent, sequential frames) are requestedand received from the media device. In some implementations, the secondset of frames includes non-consecutive frames of the media object fromdifferent points along the runtime of the media object. In someexamples, the frames of the second set of frames are used to populatethe editor bar 532. In this manner, the user can have an understandingof what content (e.g., action) is occurring at different points alongthe runtime of the media object.

In some implementations, in response to the user selecting a play icon(e.g., triangle), the media object can be played in the viewer 532initially using cached frames (e.g., the first set of frames), andsubsequent frames are requested and received from the media device. Inthis manner, the media object is streamed from the media device forplayback on the mobile processing device 100. In some examples,streaming of the media object is halted in response to user selection ofa pause icon (e.g., double bars) or a stop icon (e.g., square). That is,subsequent frames are no longer requested from the media device. In someexamples, as frames are played they are deleted from memory on themobile processing device 100. In some examples, frames in the second setof frames remain in memory of the mobile processing device 100,regardless of whether they are played. In this manner, the frames of thesecond set of frames remain available for display in the editor bar 534.

In some implementations, and as described above, the media object can beedited using the handles 536 a, 536 b, and/or the partitioning bar 538.In some examples, the locations of the handles 536 a, 536 b, and/or thepartitioning bar 538 are used to define which frames are to bedownloaded from the media device. For example, in response to userselection of the media object download button 542, a request can be sentfrom the mobile processing device 100 to the media player requesting oneor more sub-objects from the media object based on data indicating thelocations of the handles 536 a, 536 b, and/or the partitioning bar 538along the runtime of the media object. In some examples, the mediadevice processes the request and data provided therein to copy framesfrom the media object that define the sub-object(s) and transmit thesub-object(s) as respective media object(s) to the mobile processingdevice for persistent storage thereon. In some examples, the mediadevice processes the request and data provided therein to transmitframes from the media object to the mobile processing device 100, andthe mobile processing device 100 compiles the frames into respectivemedia object(s) for persistent storage thereon.

FIGS. 5I-5L depict an example project editing screen 550 in accordancewith implementations of the present disclosure. In some examples, and asdescribed in further detail herein, the project editing screen 550 isused to create and/or edit a digital media project. In some examples, adigital media project is provided as one or more digital media objects.For example, the user can combine media objects (e.g., from differentsources, from the same source) to provide the digital media project. Insome examples, the digital media project can include multiple types ofmedia objects (e.g., audio, video, images).

In some examples, the project editing screen 550 is displayed inresponse to user selection of the add button 506 (e.g., of the projectsscreen 500 of FIG. 5A), which can be selected to initiate a workflow forcreating a new digital media project. In some examples, the projectediting screen 550 is displayed in response to user selection of adigital media project 502 (e.g., of the projects screen 500 of FIG. 5A).The project editing screen 550 includes a viewer 552, editing options554, an insertion button 556, a volume control 558, a speed control 560,and a transition button 562. In the depicted example, the editingoptions 556 include a cut/trim option (e.g., scissors icon), whichenables the user to cut/trim portions of the digital media project, aneffects option (e.g., magic wand icon), which enables the user to addeffects (e.g., none, fade, noir, sepia) to one or more portions of thedigital media project, a text option (e.g., letter icon), which enablesthe user to add text to one or more portions of the digital mediaproject, and a media selection icon, which enables the user to add oneor more media objects to the digital media project, as described infurther detail herein.

In the example of FIG. 5I, the digital media project being createdalready includes a media object, which is displayed in the viewer 552.For example, a creation of a new digital media project was initiated,and the user had already selected a first media object for inclusion inthe digital media project. As another example, a previously createddigital media project was selected for editing, and included the mediaobject. In some examples, the user can select the insertion button 556to insert another media object into the digital media project. Forexample, in response to user selection of the insertion button 556, themedia screen 514 of FIG. 5C can be displayed, from which the user canselect a media object, and, in response to user selection of a mediaobject, the selected media object can be added to the digital mediaproject.

FIG. 5J depicts the project editing screen 500, where multiple mediaobjects are provided in the digital media project. In the depictedexample, graphical representations of the multiple media objects 570 areprovided. In some examples, a media object 570 can be selected (e.g., asindicated by a highlighted border). In some examples, selection of amedia object results in a deletion icon (e.g., an X within a circle)appearing on, partially on, or near the media object 570. In someexamples, the user can select the deletion icon, and the respectivemedia object is deleted from the digital media project. In someexamples, an insertion icon 572 is displayed between media objects 570.In some examples, an insertion icon 572 can be displayed before thefirst media object 570, and/or after the last media object 570. In someexamples, selecting an insertion icon 572 enables the user to insert amedia object at a respective location (the location of the selectioninsertion icon 572). In some examples, a menu is displayed in responseto user selection of an insertion icon 572, which menu includes mediaobject, transition, and/or title options, for example. The user canselect the media object option from the menu to select a media object(e.g., from the media screen 514 of FIG. 5C) for insertion. The user canselect the transition option from the menu to select a transition forinsertion. The user can select the title option from the menu to input atitle for insertion.

In the example of FIG. 5J, the project editing screen 500 includes alocation bar 574 that can be moved to a particular location along theruntime of the digital media project. For example, the user can tap onand slide the location bar 574 along the runtime, to place the locationbar 574 at a desired location. In some examples, the user can editspeed, audio, and/or transitions, among other example features, at theselected location indicated by the location bar 574. For example, theuser can use the volume control 558 to adjust a volume of the audio atthe particular location. Consequently, during playback of the digitalmedia project, the volume of the audio will transition to the volume setby the user using the volume control 558. In some examples, the volumeof the audio remains at the selected setting for the remainder of theplayback, or will again transition at another location as indicated bythe user during editing. As another example, the user can use the speedcontrol 560 to adjust a playback speed of the video at the particularlocation. Consequently, during playback of the digital media project,the playback speed of the video will transition to the speed set by theuser using the speed control 560. In some examples, the playback speedof the video remains at the selected setting for the remainder of theplayback, or will again transition at another location as indicated bythe user during editing.

In some examples, the user can select a transition type for transitions(e.g., volume, playback speed) at the selected location using thetransition button 562. In some examples, selection of the transitionbutton 562 results in a gradual transition from a current volume/speedto the volume/speed set by the user for the particular location. In thismanner, a jump from a current volume/speed is avoided during playback ofthe digital media project. If, however, a jump is desired, the user neednot select the transition button 562. In some implementations, metadatais appended to the digital media project (e.g., the computer-readablefile(s), within which the digital media project is stored) based on thevarious settings. For example, a set of metadata can be provided, whichindicates a location (based on the location bar 574), a volume of audioat the location, a playback speed at the location, and/or any effects(e.g., none, fade, noir, sepia) to be displayed at the location.

With particular reference to FIG. 5K, one or more effects can be addedto the digital media project. For example, the user can select theeffects option (e.g., magic wand icon) from the editing option 554, andin response, graphical representations of one or more effects 564 (e.g.,none, fade, noir, sepia) are displayed for selection. In some examples,the user can select an effect 564, which is then added to the digitalmedia project at the specified location. In some examples, an effectsetting control 566 is provided to select a setting for the selectedeffect. Example settings can include color, contrast, sharpness, and thelike, to be applied with the effect. In some examples, an effectsettings icon 568 is provided, and in response to user selection of theeffect setting icon 568, a plurality of effect setting controls 566 aredisplayed, as depicted in FIG. 5L. In some examples, each effect settingcontrol 566 is particular to a respective setting (e.g., color,contrast, sharpness).

FIGS. 6A-6F depict example screenshots of a digital media editingapplication for mobile devices in accordance with implementations of thepresent disclosure.

FIG. 6A depicts an example projects screen 600. In the depicted example,the projects screen 600 provides graphical representations of digitalmedia projects 602 that are stored on the mobile processing device 100.The projects screen 600 includes a selection interface 604 for switchingbetween the projects screen 600, and channel screens. The projectsscreen 600 includes an add button 606, which can be selected to initiatea workflow for creating a new digital media project. In some examples, agraphical representation of a digital media project 602 can be selectedto initiate view and/or editing of the digital media project 602.

In some implementations, in response to user selection of the channeloption from the selection interface 604, one or more available channelscan be displayed to the user. In general, a channel includes an externaldigital media source (e.g., the media device 402, computer-implementedservices provided by the server system 406). In some examples, a channelalso includes media objects stored on the mobile processing device 100(e.g., the “camera roll” of the mobile processing device 100). In someexamples, in response to user selection of a particular channel, achannel screen is displayed on the mobile processing device 100.

FIG. 6B depicts an example channel screen 614. In the depicted example,the channel screen 614 corresponds to media objects stored on the mobileprocessing device 100 (e.g., the “camera roll” of the mobile processingdevice 100). In the depicted example, the channel screen 614 providesgraphical representations of digital media objects 616 (e.g., images,video, audio) that are stored on the mobile processing device 100. Thechannel screen 614 includes an add button 618, which can be selected toinitiate a workflow for creating a new media object. n some examples, agraphical representation of a digital media object 616 can be selectedto initiate view and/or editing of the digital media object 616, and/orcreation of a digital media project based on the digital media object616. The channel screen 614 includes a filter option 620, which can beused to filter the media objects 616 that are displayed. In someexamples, the media objects can be filtered/organized based on date(e.g., moments), type (e.g., images, video, audio), duration, and thelike.

In the depicted example, the channel screen 614 includes a channelselection interface 622, which includes a plurality of options forselecting respective channels as sources of digital media objects to bedisplayed in the media screen 614. In the depicted example, the channelsinclude the mobile processing device 100 (e.g., the camera roll)indicated by a flower-like icon, a media device (e.g., GoPro cameraindicated by the GoPro icon), a computer-implemented, file hostingservice (e.g., Dropbox indicated by the Dropbox logo), acomputer-implemented, social networking service (e.g., Facebookindicated by the Facebook logo), and a computer-implemented,content-sharing service (e.g., Instagram indicated by the Instagramlogo). In some examples, the user can select a channel from the channelselection interface 622 to initiate connection to the selected channel(e.g., over a network).

Connection to a selected channel (e.g., a media device) will now bedescribed with reference to FIGS. 6C-6E. In some examples, in responseto the user selecting the media device channel from the channelselection interface 622, connection to the selected media device isinitiated. In some examples, if a media device has not yet beenconnected to the mobile processing device 100, a workflow is executed toestablish a connection. For example, and with reference to FIG. 5C, aconnection screen 628, through which the user can establish a connectionbetween the mobile processing device 100 and the media device. FIG. 6Ddepicts a media object selection screen 630 that is specific to arespective media device. In the depicted example, the user has theoption of viewing media objects that are from the media device, but arestored on the mobile processing device (option 632 a), or that arestored on the media device (option 632 b).

FIG. 6E depicts an example media screen 640. In the depicted example,the media screen 640 provides graphical representations of digital mediaobjects 642 (e.g., images, video, audio) that are stored on the mobileprocessing device 100. The media screen 640 includes the channelselection interface, and the media type selection interface 518described above. In some examples, a graphical representation of adigital media object 642 can be selected to initiate view and/or editingof the digital media object 642, and/or creation of a digital mediaproject based on the digital media object 642.

FIG. 6F depicts an example object editing screen 650 in accordance withimplementations of the present disclosure. In some examples, the objectediting screen 650 functions and includes the same options as the objectediting screen 530 of FIGS. 5F-5H.

FIGS. 7A-7L depict example screenshots of a digital media editingapplication for mobile devices in accordance with implementations of thepresent disclosure.

FIGS. 8A-8F depict example screenshots of a digital media editingapplication for mobile devices in accordance with implementations of thepresent disclosure.

FIG. 9 depicts an example process 900 that can be executed in accordancewith implementations of the present disclosure. In some examples, theexample process 900 can be provided by one or more computer-executableprograms executed using one or more computing devices (e.g., the mobilecomputing device 100). In some examples, the example process 900 isexecuted to edit one or more digital videos using a mobile device.

A digital media editing environment is provided (902). For example, thedigital media editing environment is provided as one or morecomputer-executable applications executed by a mobile device (e.g., themobile computing device 100). In some examples, the digital mediaediting environment is provided for editing at least a portion of adigital video using the mobile device. Communication is establishedbetween the mobile device and a data source (904). For example,communication is established between the mobile computing device 100,and one of the media device 404, and the server system 406, as describedherein with reference to FIG. 4.

A first portion of the digital video is received from the data source(906). For example, a first portion of the digital video is received bythe mobile device from the data source. In some examples, the firstportion is provided as a low-resolution version of the digital video.For example, the first portion includes a first set of frames havingless than all frames of the digital video. At least one edit is appliedto the first portion of the digital video (908). For example, a userused the digital media editing environment to apply the at least oneedit. Example edits can include, without limitation, deletion of one ormore frames, insertion of one or more frames, adding an effect (e.g.,text, black and white, sepia, zoom in/out), adding a transition, addingaudio, including slow motion, including fast-forward, and the like. Inthe example case of slow motion, applying an edit can include insertingadditional frames, and/or instructions to reduce a playback speed. Forexample, in response to user input selecting slow motion, the digitalmedia editing environment can insert additional frames (e.g., copies offrames), and/or computer-executable instructions into a respectivesegment of the first portion. In the example case of fast forward,applying an edit can include removing frames, and/or providinginstructions to increase a playback speed. For example, in response touser input selecting fast forward, the digital media editing environmentcan remove frames, and/or insert computer-executable instructions into arespective segment of the first portion. Accordingly, actions performedto apply an edit can depend on the particular edit. In accordance withimplementations of the present disclosure, the at last one edit isapplied while less than all frames of the digital video are stored onthe mobile device.

Subsequent to applying the at least one edit, a second portion of thedigital video is received from the data source (910). For example, asecond portion of the digital video is received by the mobile devicefrom the data source. In some examples, the second portion includes asecond set of frames of the digital video. An edited digital video isprovided on the mobile device (912). In some examples, the editeddigital video includes at least one frame of the first set of frames, atleast one frame of the second set of frames, and the at least one edit.

Although described in the context of a mobile device applicationoperating on a mobile processing device, it is contemplated thatimplementations of the present disclosure, and all of the functionaloperations provided herein, can be realized in any suitable type ofdigital electronic circuitry, or in computer software, firmware, orhardware, including the structures disclosed in this specification andtheir structural equivalents, or in combinations of one or more of them.Implementations of the present disclosure can also be realized as one ormore computer program products, i.e., one or more modules of computerprogram instructions encoded on a computer readable medium for executionby, or to control the operation of, data processing apparatus. Thecomputer readable medium can be a machine-readable storage device, amachine-readable storage substrate, a memory device, a composition ofmatter effecting a machine-readable propagated signal, or a combinationof one or more of them. The term “data processing apparatus” encompassesall apparatus, devices, and machines for processing data, including byway of example a programmable processor, a computer, or multipleprocessors or computers. The apparatus can include, in addition tohardware, code that creates an execution environment for the computerprogram in question, e.g., code that constitutes processor firmware, aprotocol stack, a database management system, an operating system, or acombination of one or more of them.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, and it can bedeployed in any form, including as a stand alone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system. A program can be stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this disclosure can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. Elements of a computer can include aprocessor for performing instructions and one or more memory devices forstoring instructions and data. Generally, a computer will also include,or be operatively coupled to receive data from or transfer data to, orboth, one or more mass storage devices for storing data, e.g., magnetic,magneto optical disks, or optical disks. However, a computer need nothave such devices. Moreover, a computer can be embedded in anotherdevice, e.g., a mobile telephone, a personal digital assistant (PDA), amobile audio player, a Global Positioning System (GPS) receiver, to namejust a few. Computer readable media suitable for storing computerprogram instructions and data include all forms of non volatile memory,media and memory devices, including by way of example semiconductormemory devices, e.g., EPROM, EEPROM, and flash memory devices; magneticdisks, e.g., internal hard disks or removable disks; magneto opticaldisks; and CD ROM and DVD-ROM disks. The processor and the memory can besupplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, implementations of the presentdisclosure can be implemented on a computer having a display device,e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor,for displaying information to the user and a keyboard and a pointingdevice, e.g., a mouse or a trackball, by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback, e.g., visual feedback,auditory feedback, or tactile feedback; and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

While this disclosure includes some specifics, these should not beconstrued as limitations on the scope of the disclosure or of what canbe claimed, but rather as descriptions of features of exampleimplementations of the disclosure. Certain features that are describedin this disclosure in the context of separate implementations can alsobe provided in combination in a single implementation. Conversely,various features that are described in the context of a singleimplementation can also be provided in multiple implementationsseparately or in any suitable sub-combination. Moreover, althoughfeatures can be described above as acting in certain combinations andeven initially claimed as such, one or more features from a claimedcombination can in some cases be excised from the combination, and theclaimed combination can be directed to a sub-combination or variation ofa sub-combination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingcan be advantageous. Moreover, the separation of various systemcomponents in the implementations described above should not beunderstood as requiring such separation in all implementations, and itshould be understood that the described program components and systemscan generally be integrated together in a single software product orpackaged into multiple software products.

Thus, particular implementations of the present disclosure have beendescribed. Other implementations are within the scope of the followingclaims. For example, the actions recited in the claims can be performedin a different order and still achieve desirable results. A number ofimplementations have been described. Nevertheless, it will be understoodthat various modifications can be made without departing from the spiritand scope of the disclosure. For example, various forms of the flowsshown above can be used, with steps re-ordered, added, or removed.Accordingly, other implementations are within the scope of the followingclaims.

What is claimed is:
 1. A computer-implemented method for editing one ormore digital videos using a mobile device, the method being executed byone or more processors of the mobile device and comprising: providing,by the one or more processors, a digital media editing environment forediting at least a portion of a first digital video using the mobiledevice; establishing, by the one or more processors, communicationbetween the mobile device and a data source; receiving, by the one ormore processors, and from the data source, a first portion of the firstdigital video, the first portion comprising a first set of framesincluding less than all frames of the first digital video; applying, bythe one or more processors, at least one edit to the first portion ofthe first digital video, while less than all frames of the first digitalvideo are stored on the mobile device; subsequent to applying the atleast one edit, receiving, by the one or more processors, and from thedata source, a second portion of the first digital video, the secondportion comprising a second set of frames of the first digital video;and storing, by the one or more processors, an edited digital video onthe mobile device, the edited digital video comprising at least oneframe of the first set of frames, at least one frame of the second setof frames, and the at least one edit.
 2. The method of claim 1, whereinthe first portion of the digital video comprises a low-resolutionversion of the digital video.
 3. The method of claim 1, wherein the setof frames comprises every z^(th) frame of the digital video, where z isan integer that is greater than or equal to
 2. 4. The method of claim 1,wherein the edited digital video comprises less than all frames of thefirst digital video.
 5. The method of claim 1, wherein less than allframes of the first digital video are received by the mobile device. 6.The method of claim 1, wherein the second set of frames comprises framesof the first digital video that are absent from the first set of frames.7. The method of claim 1, wherein the edited digital video comprises atleast a portion of a second digital video that is received by the mobiledevice.
 8. The method of claim 1, wherein the data source comprises amedia device.
 9. The method of claim 1, wherein the data sourcecomprises a server system that stores digital content.
 10. The method ofclaim 1, wherein the mobile device comprises one of a tablet computingdevice, a smartphone, and a media device.
 11. A non-transitorycomputer-readable storage medium coupled to one or more processors andhaving instructions stored thereon which, when executed by the one ormore processors, cause the one or more processors to perform operationsfor editing a digital video using a mobile device, the operationscomprising: providing a digital media editing environment for editing atleast a portion of a first digital video using the mobile device;establishing communication between the mobile device and a data source;receiving, from the data source, a first portion of the first digitalvideo, the first portion comprising a first set of frames including lessthan all frames of the first digital video; applying at least one editto the first portion of the first digital video, while less than allframes of the first digital video are stored on the mobile device;subsequent to applying the at least one edit, receiving, from the datasource, a second portion of the first digital video, the second portioncomprising a second set of frames of the first digital video; andstoring an edited digital video on the mobile device, the edited digitalvideo comprising at least one frame of the first set of frames, at leastone frame of the second set of frames, and the at least one edit. 12.The computer-readable storage medium of claim 11, wherein the firstportion of the digital video comprises a low-resolution version of thedigital video.
 13. The computer-readable storage medium of claim 11,wherein the set of frames comprises every z^(th) frame of the digitalvideo, where z is an integer that is greater than or equal to
 2. 14. Thecomputer-readable storage medium of claim 11, wherein the edited digitalvideo comprises less than all frames of the first digital video.
 15. Thecomputer-readable storage medium of claim 11, wherein less than allframes of the first digital video are received by the mobile device. 16.A system, comprising: a data source; and a mobile device having acomputer-readable storage device having instructions stored thereonwhich, when executed by the mobile device, cause the mobile device toperform operations for editing a digital video using the mobile device,the operations comprising: providing a digital media editing environmentfor editing at least a portion of a first digital video using the mobiledevice; establishing communication between the mobile device and a datasource; receiving, from the data source, a first portion of the firstdigital video, the first portion comprising a first set of framesincluding less than all frames of the first digital video; applying atleast one edit to the first portion of the first digital video, whileless than all frames of the first digital video are stored on the mobiledevice; subsequent to applying the at least one edit, receiving, fromthe data source, a second portion of the first digital video, the secondportion comprising a second set of frames of the first digital video;and storing an edited digital video on the mobile device, the editeddigital video comprising at least one frame of the first set of frames,at least one frame of the second set of frames, and the at least oneedit.
 17. The system of claim 16, wherein the first portion of thedigital video comprises a low-resolution version of the digital video.18. The system of claim 16, wherein the set of frames comprises everyz^(th) frame of the digital video, where z is an integer that is greaterthan or equal to
 2. 19. The system of claim 16, wherein the editeddigital video comprises less than all frames of the first digital video.20. The system of claim 16, wherein less than all frames of the firstdigital video are received by the mobile device.